#pragma once

#include<iostream>
#include<vector>
#include<functional>

//typedef std::function<void()> func_t;
using func_t = std::function<void()>;

class Tool
{
public:
  Tool(){};
  ~Tool(){};
  void PushFunc(func_t f)
  {
      _funcs.push_back(f);
  }
  void Execute()
  {
      for(auto& f : _funcs)
      {
          f();
      }
  }
    
private:
    std::vector<func_t> _funcs;
};
